package com.shujia

// class 声明的就是类的对象所拥有的方法或属性，即成员方法、成员属性
// 需要通过类的对象才能够进行调用
class Demo01HelloWorld {
  // 如果main方法出现在class的定义中，则说明该方法是普通的成员方法
  // 需要通过类的对象进行调用，如果需要直接通过类对象进行调用 则需要将main方法置为静态的
  // 在Scala中没有static关键字修饰
  //  def main(args: Array[String]): Unit = {
  //    System.out.println("Hello World Java!")
  //  }
  def printHello(): Unit = {
    println("Hello World Scala!")
  }

}

// 在Scala中由于没有static关键字，所以这里将所有在object中定义的属性或方法
// 都可以看成是静态的
// object 声明的就是类对象
object Demo01HelloWorld {
  val i = 10

  def printScala(): Unit = {
    println("Hello Scala!")
  }

  // 在object中定义的，所以是静态的，所以可以直接通过类对象进行调用
  def main(args: Array[String]): Unit = {
    System.out.println("Hello World Scala!")
    Demo01HelloWorld.printScala() // 静态方法可以直接通过类对象进行调用
    new Demo01HelloWorld().printHello() // 普通方法需要通过类的对象进行调用

    // 在Scala代码中调用Java中的类
    // new Demo01HelloWorldJava().printHello()

    //Demo01HelloWorld.i
  }
}

